package com.turing.post.common.util;

import java.math.BigInteger;
import java.util.List;

import javax.ejb.Local;
import javax.ejb.Remote;

import com.turing.post.util.PCPSApplicationException;
import com.turing.post.util.PCPSWebInput;

/**
 * 系统操作日志
 * 
 * @author zxp
 * @Jan 14, 2013
 */
@Remote
@Local
public interface SysOperLogDao {

	/**
	 * 新增
	 * 
	 * @param sysOperLog
	 * @throws PCPSApplicationException
	 */
	public void insertSysOperLog(SysOperLog sysOperLog)
			throws PCPSApplicationException;

	/**
	 * 根据主键编号查询日志
	 * 
	 * @param logId
	 * @return
	 */
	public SysOperLog getSysOperLogById(BigInteger logId);

	/**
	 * 查询用户操作日志列表
	 * 
	 * @param webInput
	 * @param OperType
	 *            日志类型
	 * @param startTime
	 *            起始时间
	 * @param endTime
	 *            终止时间
	 * @param page
	 * @return
	 */
	public List<SysOperLog> getSysOperLogListByCondition(PCPSWebInput webInput,
			String OperType, String startTime, String endTime, Integer page);

	/**
	 * 查询用户操作日志记录数
	 * 
	 * @param webInput
	 * @param OperType
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	public BigInteger getSysOperLogTotalByCondition(PCPSWebInput webInput,
			String OperType, String startTime, String endTime);

	/**
	 * 操作日志记录
	 * 
	 * @param webInput
	 * @param operType
	 *            操作类型
	 * @param logName
	 *            日志名称
	 * @param remark
	 *            备注
	 * @throws PCPSApplicationException
	 */
	public void insertSysOperLogInfo(PCPSWebInput webInput, String operType,
			String logName, String remark) throws PCPSApplicationException;

	/**
	 * 删除用户操作日志
	 * 
	 * @param webInput
	 * @param operId
	 */
	public void deleteSysOperLogByOperId(PCPSWebInput webInput,
			BigInteger operId);
	/**
	 * 根据id删除操作日志
	 * 
	 * @param webInput
	 * @param operId
	 */
	public void deleteSysOperLogByLogId(PCPSWebInput webInput,
			BigInteger logId);
}
